// import 'dart:convert';
// import 'dart:developer';
// import 'dart:io';
// import 'package:anmo_app/common/services/http_request.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// import 'package:get/get.dart';
// import 'package:jpush_flutter/jpush_flutter.dart';
// import '../index.dart';

// ///
// ///Author: YYF
// ///Date: 2022-03-23 09:18:08
// ///Description:
// ///

// class JPushUtils {
//   final jPushAppKey = '888eb576e9d2f99c90fa78ba';

//   static final JPushUtils _instance = JPushUtils._internal();
//   factory JPushUtils() => _instance;
//   late final JPush jpush;

//   String registrationId = '';

//   ///初始化
//   JPushUtils._internal() {
//     jpush = JPush();
//   }

//   Future<void> initPlatformState() async {
//     try {
//       jpush.addEventHandler(
//           onReceiveNotification: (Map<String, dynamic> message) async {
//         ///收到推送
//         log("flutter onReceiveNotification: $message");
//         _showSnackbar(message);
//       }, onOpenNotification: (Map<String, dynamic> message) async {
//         // 点击通知回调方法。
//         log("flutter onOpenNotification: $message");
//         Map<String, dynamic> pushData = getNotificationData(message);
//         // Get.toNamed(AppRoutes.DISCOVER_DETAIL, arguments: pushData['msgValue']);
//         _pushMsgClick(pushData);
//       }, onReceiveMessage: (Map<String, dynamic> message) async {
//         // 接收自定义消息回调方法。
//         log("flutter onReceiveMessage: $message");
//         _showSnackbar(message);
//       }, onReceiveNotificationAuthorization:
//               (Map<String, dynamic> message) async {
//         // 接收通知权限
//         log("flutter onReceiveNotificationAuthorization: $message");
//       });
//     } on PlatformException {
//       log('initPlatformState  addEventHandler  error');
//     }

//     jpush.setup(
//       appKey: jPushAppKey, //你自己应用的 AppKey
//       channel: "theChannel",
//       production: true, //生产
//       debug: true, //debug
//     );

//     if (Platform.isIOS) {
//       jpush.applyPushAuthority(
//           const NotificationSettingsIOS(sound: true, alert: true, badge: true));
//     }
//     try {
//       jpush.setUnShowAtTheForeground(unShow: true);
//     } catch (e) {
//       log('setUnShowAtTheForeground');
//     }
//     jpush.setWakeEnable(enable: true);
//     // Platform messages may fail, so we use a try/catch PlatformException.
//     jpush.getRegistrationID();
//     // jpush.clearAllNotifications();
//     jpush.setAuth(
//         enable: (StorageService.to.getBool(STORAGE_DEVICE_FIRST_OPEN_KEY)));
//   }

//   getRegistrationID() {
//     jpush.getRegistrationID().then((rid) {
//       log("registration id ==> : $rid");
//       registrationId = rid;
//       if (UserStore.to.hasToken) {
//         setUserRegistrationID(rid);
//       }
//     });
//   }

//   ///设置registration_id
//   setUserRegistrationID(id) async {
//     var response = await HttpEConcurUtil()
//         .get(AppApi.bindRegistrationId + id.toString(), showLoading: false);
//     if (response['code'] == 200) {}
//     debugPrint(response['message']);
//     log('RegistrationId=======>$id');
//   }

//   ///显示类似通知提示框
//   _showSnackbar(message) {
//     Map<String, dynamic> pushData = getNotificationData(message);
//     Get.snackbar(pushData['title'], pushData['content'],
//         duration: const Duration(seconds: 5), onTap: (GetSnackBar bar) {
//       _pushMsgClick(pushData);
//     });
//   }

//   ///点击跳转
//   _pushMsgClick(Map<String, dynamic> pushData) {
//     jpush.clearNotification(notificationId: pushData['notificationId']);
//     jpush.setBadge(0);
//     Get.back();
//     // ItemModel model = ItemModel.fromJson({
//     //   'id': int.parse(pushData['id']),
//     //   'type': int.parse(pushData['type']),
//     //   'title': pushData['title']
//     // });
//     // Get.toNamed(AppRoutes.DISCOVER_DETAIL, arguments: model);
//   }

//   ///解析推送数据
//   getNotificationData(message) {
//     if (Platform.isAndroid) {
//       Map pushData = jsonDecode(message['extras']['cn.jpush.android.EXTRA']);
//       int notificationId = int.parse(
//           message['extras']['cn.jpush.android.NOTIFICATION_ID'].toString());
//       return {
//         'type': pushData.keys.first,
//         'id': pushData.values.first,
//         'notificationId': notificationId,
//         'title': message['title'],
//         'content': message['alert']
//       };
//     } else {
//       Map pushData = message['extras'];
//       int notificationId = int.parse(message['_j_uid'].toString());
//       return {
//         'type': pushData.keys.first,
//         'id': pushData.values.first,
//         'notificationId': notificationId,
//         'title': message['aps']['thread-id'],
//         'content': message['aps']['alert']
//       };
//     }
//   }

//   sendLocalNotification(Map<String, dynamic> message) {
//     log(jsonEncode(message));
//     var fireDate = DateTime.fromMillisecondsSinceEpoch(
//         DateTime.now().millisecondsSinceEpoch + 3000);
//     var localNotification = LocalNotification(
//         id: 234,
//         title: 'notification title',
//         content: 'notification content',
//         fireTime: fireDate,
//         buildId: 1,
//         subtitle: 'notification subtitle', // 该参数只有在 iOS 有效
//         badge: 5, // 该参数只有在 iOS 有效
//         extra: {"fa": "0"} // 设置 extras ，extras 需要是 Map<String, String>
//         );
//     jpush.sendLocalNotification(localNotification).then((res) {});
//   }
// }
